package com.hjb.service.domain.InstalmentOrder;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class InstalmentOrderExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InstalmentOrderExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andOrderIdIsNull() {
            addCriterion("order_id is null");
            return (Criteria) this;
        }

        public Criteria andOrderIdIsNotNull() {
            addCriterion("order_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrderIdEqualTo(String value) {
            addCriterion("order_id =", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotEqualTo(String value) {
            addCriterion("order_id <>", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdGreaterThan(String value) {
            addCriterion("order_id >", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdGreaterThanOrEqualTo(String value) {
            addCriterion("order_id >=", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLessThan(String value) {
            addCriterion("order_id <", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLessThanOrEqualTo(String value) {
            addCriterion("order_id <=", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLike(String value) {
            addCriterion("order_id like", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotLike(String value) {
            addCriterion("order_id not like", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdIn(List<String> values) {
            addCriterion("order_id in", values, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotIn(List<String> values) {
            addCriterion("order_id not in", values, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdBetween(String value1, String value2) {
            addCriterion("order_id between", value1, value2, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotBetween(String value1, String value2) {
            addCriterion("order_id not between", value1, value2, "orderId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdIsNull() {
            addCriterion("site_user_id is null");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdIsNotNull() {
            addCriterion("site_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdEqualTo(String value) {
            addCriterion("site_user_id =", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdNotEqualTo(String value) {
            addCriterion("site_user_id <>", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdGreaterThan(String value) {
            addCriterion("site_user_id >", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdGreaterThanOrEqualTo(String value) {
            addCriterion("site_user_id >=", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdLessThan(String value) {
            addCriterion("site_user_id <", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdLessThanOrEqualTo(String value) {
            addCriterion("site_user_id <=", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdLike(String value) {
            addCriterion("site_user_id like", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdNotLike(String value) {
            addCriterion("site_user_id not like", value, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdIn(List<String> values) {
            addCriterion("site_user_id in", values, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdNotIn(List<String> values) {
            addCriterion("site_user_id not in", values, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdBetween(String value1, String value2) {
            addCriterion("site_user_id between", value1, value2, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andSiteUserIdNotBetween(String value1, String value2) {
            addCriterion("site_user_id not between", value1, value2, "siteUserId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdIsNull() {
            addCriterion("apartment_id is null");
            return (Criteria) this;
        }

        public Criteria andApartmentIdIsNotNull() {
            addCriterion("apartment_id is not null");
            return (Criteria) this;
        }

        public Criteria andApartmentIdEqualTo(String value) {
            addCriterion("apartment_id =", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdNotEqualTo(String value) {
            addCriterion("apartment_id <>", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdGreaterThan(String value) {
            addCriterion("apartment_id >", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdGreaterThanOrEqualTo(String value) {
            addCriterion("apartment_id >=", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdLessThan(String value) {
            addCriterion("apartment_id <", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdLessThanOrEqualTo(String value) {
            addCriterion("apartment_id <=", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdLike(String value) {
            addCriterion("apartment_id like", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdNotLike(String value) {
            addCriterion("apartment_id not like", value, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdIn(List<String> values) {
            addCriterion("apartment_id in", values, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdNotIn(List<String> values) {
            addCriterion("apartment_id not in", values, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdBetween(String value1, String value2) {
            addCriterion("apartment_id between", value1, value2, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andApartmentIdNotBetween(String value1, String value2) {
            addCriterion("apartment_id not between", value1, value2, "apartmentId");
            return (Criteria) this;
        }

        public Criteria andRepayDateIsNull() {
            addCriterion("repay_date is null");
            return (Criteria) this;
        }

        public Criteria andRepayDateIsNotNull() {
            addCriterion("repay_date is not null");
            return (Criteria) this;
        }

        public Criteria andRepayDateEqualTo(Date value) {
            addCriterion("repay_date =", value, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateNotEqualTo(Date value) {
            addCriterion("repay_date <>", value, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateGreaterThan(Date value) {
            addCriterion("repay_date >", value, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateGreaterThanOrEqualTo(Date value) {
            addCriterion("repay_date >=", value, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateLessThan(Date value) {
            addCriterion("repay_date <", value, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateLessThanOrEqualTo(Date value) {
            addCriterion("repay_date <=", value, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateIn(List<Date> values) {
            addCriterion("repay_date in", values, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateNotIn(List<Date> values) {
            addCriterion("repay_date not in", values, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateBetween(Date value1, Date value2) {
            addCriterion("repay_date between", value1, value2, "repayDate");
            return (Criteria) this;
        }

        public Criteria andRepayDateNotBetween(Date value1, Date value2) {
            addCriterion("repay_date not between", value1, value2, "repayDate");
            return (Criteria) this;
        }

        public Criteria andTermNoIsNull() {
            addCriterion("term_no is null");
            return (Criteria) this;
        }

        public Criteria andTermNoIsNotNull() {
            addCriterion("term_no is not null");
            return (Criteria) this;
        }

        public Criteria andTermNoEqualTo(Integer value) {
            addCriterion("term_no =", value, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoNotEqualTo(Integer value) {
            addCriterion("term_no <>", value, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoGreaterThan(Integer value) {
            addCriterion("term_no >", value, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoGreaterThanOrEqualTo(Integer value) {
            addCriterion("term_no >=", value, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoLessThan(Integer value) {
            addCriterion("term_no <", value, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoLessThanOrEqualTo(Integer value) {
            addCriterion("term_no <=", value, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoIn(List<Integer> values) {
            addCriterion("term_no in", values, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoNotIn(List<Integer> values) {
            addCriterion("term_no not in", values, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoBetween(Integer value1, Integer value2) {
            addCriterion("term_no between", value1, value2, "termNo");
            return (Criteria) this;
        }

        public Criteria andTermNoNotBetween(Integer value1, Integer value2) {
            addCriterion("term_no not between", value1, value2, "termNo");
            return (Criteria) this;
        }

        public Criteria andTotalAmtIsNull() {
            addCriterion("total_amt is null");
            return (Criteria) this;
        }

        public Criteria andTotalAmtIsNotNull() {
            addCriterion("total_amt is not null");
            return (Criteria) this;
        }

        public Criteria andTotalAmtEqualTo(Integer value) {
            addCriterion("total_amt =", value, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtNotEqualTo(Integer value) {
            addCriterion("total_amt <>", value, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtGreaterThan(Integer value) {
            addCriterion("total_amt >", value, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtGreaterThanOrEqualTo(Integer value) {
            addCriterion("total_amt >=", value, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtLessThan(Integer value) {
            addCriterion("total_amt <", value, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtLessThanOrEqualTo(Integer value) {
            addCriterion("total_amt <=", value, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtIn(List<Integer> values) {
            addCriterion("total_amt in", values, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtNotIn(List<Integer> values) {
            addCriterion("total_amt not in", values, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtBetween(Integer value1, Integer value2) {
            addCriterion("total_amt between", value1, value2, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andTotalAmtNotBetween(Integer value1, Integer value2) {
            addCriterion("total_amt not between", value1, value2, "totalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtIsNull() {
            addCriterion("principal_amt is null");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtIsNotNull() {
            addCriterion("principal_amt is not null");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtEqualTo(Integer value) {
            addCriterion("principal_amt =", value, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtNotEqualTo(Integer value) {
            addCriterion("principal_amt <>", value, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtGreaterThan(Integer value) {
            addCriterion("principal_amt >", value, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtGreaterThanOrEqualTo(Integer value) {
            addCriterion("principal_amt >=", value, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtLessThan(Integer value) {
            addCriterion("principal_amt <", value, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtLessThanOrEqualTo(Integer value) {
            addCriterion("principal_amt <=", value, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtIn(List<Integer> values) {
            addCriterion("principal_amt in", values, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtNotIn(List<Integer> values) {
            addCriterion("principal_amt not in", values, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtBetween(Integer value1, Integer value2) {
            addCriterion("principal_amt between", value1, value2, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andPrincipalAmtNotBetween(Integer value1, Integer value2) {
            addCriterion("principal_amt not between", value1, value2, "principalAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtIsNull() {
            addCriterion("interest_amt is null");
            return (Criteria) this;
        }

        public Criteria andInterestAmtIsNotNull() {
            addCriterion("interest_amt is not null");
            return (Criteria) this;
        }

        public Criteria andInterestAmtEqualTo(Integer value) {
            addCriterion("interest_amt =", value, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtNotEqualTo(Integer value) {
            addCriterion("interest_amt <>", value, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtGreaterThan(Integer value) {
            addCriterion("interest_amt >", value, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtGreaterThanOrEqualTo(Integer value) {
            addCriterion("interest_amt >=", value, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtLessThan(Integer value) {
            addCriterion("interest_amt <", value, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtLessThanOrEqualTo(Integer value) {
            addCriterion("interest_amt <=", value, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtIn(List<Integer> values) {
            addCriterion("interest_amt in", values, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtNotIn(List<Integer> values) {
            addCriterion("interest_amt not in", values, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtBetween(Integer value1, Integer value2) {
            addCriterion("interest_amt between", value1, value2, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andInterestAmtNotBetween(Integer value1, Integer value2) {
            addCriterion("interest_amt not between", value1, value2, "interestAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtIsNull() {
            addCriterion("overdue_amt is null");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtIsNotNull() {
            addCriterion("overdue_amt is not null");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtEqualTo(Integer value) {
            addCriterion("overdue_amt =", value, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtNotEqualTo(Integer value) {
            addCriterion("overdue_amt <>", value, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtGreaterThan(Integer value) {
            addCriterion("overdue_amt >", value, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtGreaterThanOrEqualTo(Integer value) {
            addCriterion("overdue_amt >=", value, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtLessThan(Integer value) {
            addCriterion("overdue_amt <", value, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtLessThanOrEqualTo(Integer value) {
            addCriterion("overdue_amt <=", value, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtIn(List<Integer> values) {
            addCriterion("overdue_amt in", values, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtNotIn(List<Integer> values) {
            addCriterion("overdue_amt not in", values, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtBetween(Integer value1, Integer value2) {
            addCriterion("overdue_amt between", value1, value2, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andOverdueAmtNotBetween(Integer value1, Integer value2) {
            addCriterion("overdue_amt not between", value1, value2, "overdueAmt");
            return (Criteria) this;
        }

        public Criteria andRepayTypeIsNull() {
            addCriterion("repay_type is null");
            return (Criteria) this;
        }

        public Criteria andRepayTypeIsNotNull() {
            addCriterion("repay_type is not null");
            return (Criteria) this;
        }

        public Criteria andRepayTypeEqualTo(Integer value) {
            addCriterion("repay_type =", value, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeNotEqualTo(Integer value) {
            addCriterion("repay_type <>", value, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeGreaterThan(Integer value) {
            addCriterion("repay_type >", value, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("repay_type >=", value, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeLessThan(Integer value) {
            addCriterion("repay_type <", value, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeLessThanOrEqualTo(Integer value) {
            addCriterion("repay_type <=", value, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeIn(List<Integer> values) {
            addCriterion("repay_type in", values, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeNotIn(List<Integer> values) {
            addCriterion("repay_type not in", values, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeBetween(Integer value1, Integer value2) {
            addCriterion("repay_type between", value1, value2, "repayType");
            return (Criteria) this;
        }

        public Criteria andRepayTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("repay_type not between", value1, value2, "repayType");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andModTimeIsNull() {
            addCriterion("mod_time is null");
            return (Criteria) this;
        }

        public Criteria andModTimeIsNotNull() {
            addCriterion("mod_time is not null");
            return (Criteria) this;
        }

        public Criteria andModTimeEqualTo(Date value) {
            addCriterion("mod_time =", value, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeNotEqualTo(Date value) {
            addCriterion("mod_time <>", value, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeGreaterThan(Date value) {
            addCriterion("mod_time >", value, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("mod_time >=", value, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeLessThan(Date value) {
            addCriterion("mod_time <", value, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeLessThanOrEqualTo(Date value) {
            addCriterion("mod_time <=", value, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeIn(List<Date> values) {
            addCriterion("mod_time in", values, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeNotIn(List<Date> values) {
            addCriterion("mod_time not in", values, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeBetween(Date value1, Date value2) {
            addCriterion("mod_time between", value1, value2, "modTime");
            return (Criteria) this;
        }

        public Criteria andModTimeNotBetween(Date value1, Date value2) {
            addCriterion("mod_time not between", value1, value2, "modTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}